<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>let</title>
</head>

<body>
    <script>
        //声明变量
        let a;
        let b = 100;
        let c = 100,
            d = 200;
        //1.let变量不可以重复声明(浏览器会报语法错误)，var可以重复声明，所有let可以防止变量名被污染
        let name = ccc;
        // let name = aaa;
        //2.块级作用域    全局，函数，eval，
        // if else while for
        // {
        //     let age = '18';
        // }
        // console.log(age);
        //发现语法错误，因为let是块级作用域，在外部是无法读取的，使用var不会出现这个问题，这样会污染全局作用域
        //3.不存在变量提升
        // console.log(song);
        // let song = 'ccc';
        //发现语法错误，因为let不会变量提升，使用var不会出现问题，但是这样不符合逻辑思维。
        //4.不影响作用域链
        // {
        //     let cn = 'wzc';

        //     function fn() {
        //         console.log(cn);
        //     }
        //     fn();
        // }
    </script>
</body>

</html>